System and method for training a transmitter to control a remote control system

ABSTRACT

A method for training a trainable RF transmitter to transmit variable code signals used to actuate a remote device having a receiver where the transmitter includes a memory that has stored variable code characteristics for a plurality of different remote devices includes initiating a training sequence and generating at least one RF carrier signal having the variable code characteristics associated with one remote device of the plurality of different remote devices. The method further includes transmitting the at least one RF carrier signal to the receiver of the remote device and repeating the generating and transmitting steps for the variable code characteristics of each remote device in the plurality of different remote device until feedback is received from a user that the remote device is activated. Upon receiving an indication that the remote device is activated, the transmitter stores an identifier of the variable code characteristics that activated the remote device.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application is a Continuation of application Ser. No. 10/531,108, filed May 20, 2004, which is a national stage of PCT/US2004/015886, filed May 20, 2004, which claims the benefit of U.S. Provisional Application No. 60/472,049, filed May 20, 2003. application Ser. No. 10/531,108 is also a Continuation-in-Part of International Application No. PCT/US03/35641, filed Nov. 7, 2003, which claims the benefit of U.S. Provisional Application No. 60/424,989, filed Nov. 8, 2002. application Ser. No. 10/531,108 is also a Continuation-in-Part of International Application No. PCT/US2004/005257, filed Feb. 23, 2004, which claims the benefit of U.S. Provisional Application No. 60/448,993, filed Feb. 21, 2003. Each of application Ser. Nos. 10/531,108, PCT/US2004/015886, 60/472,049, PCT/US03/35641, 60/424,989, PCT/US2004/005257, and 60/448,993 are hereby incorporated by reference in their entireties.

FIELD

The present invention relates to a radio frequency (RF) transmitter and particularly to training a transmitter that transmits a control signal from a vehicle to a remotely controlled device and controlling a remotely controlled device using a transmitter in a vehicle.

BACKGROUND

Electronically operated remote control systems, such as garage door openers, home security systems, home lighting systems, etc. are becoming increasingly common. Such electronic remote control systems typically employ a battery powered portable RF transmitter for transmitting a modulated and encoded RF signal to a receiver located at the remote control system. For example, a garage door opener system may include a receiver located within a home owner's garage. The garage door receiver is tuned to the frequency of its associated portable RF transmitter and demodulates a predetermined code programmed into both the portable transmitter and receiver for operating the garage door.

As an alternative to a portable transmitter, a trainable transceiver (e.g., a remote control transceiver) may be provided in vehicles for use with remote control devices such as garage door openers, gate controllers, alarm controls, home lighting systems, or other remotely controlled devices. FIG. 1 shows a vehicle 10 including a trainable transceiver used to control a remote control system 14. The transceiver (not shown) is mounted within the vehicle 10, inside, for example, a rearview mirror 16. The transceiver learns and stores the modulation scheme (i.e., code format), transmission codes and the particular RF carrier frequency of an OEM (original equipment manufacturer) remote transmitter 12 for use with the remote control system 14. The transceiver is trained using an original remote RF transmitter 12 for the remote control system. The coded RF (or infrared) energy of the transmitter 12 is transmitted as indicated by arrow A to the transceiver mounted in the rearview mirror 16 of vehicle 10. The transceiver receives the encoded transmitted energy, demodulates it and identifies and stores the control code and carrier frequency of the transmitted energy. Once trained to the control code and frequency of the remote transmitter 12, the transceiver can be used to selectively transmit coded RF energy as indicated by arrow T to the remote control system 14 that is responsive to the signal.

To enhance security of remote control devices, many manufacturers have implemented rolling code or cryptographic algorithms in their remote control system original transmitters and receivers to transmit and respond to randomly varying codes. A cryptographic algorithm is used to generate and encrypt a new control code for each transmission of the control signal. Typically, to keep track of which code is to be transmitted or received next, sequential code serial numbers are stored that identify which code was transmitted or received last, such that the next code will have associated therewith the next sequential serial number. To enable a vehicle-installed trainable transceiver to effectively operate in such systems, trainable transceivers have been developed that have the capability of recognizing when a received signal has been originated from a transmitter that generates a code that varies with each transmission in accordance with a cryptographic protocol. When such a variable code is recognized, the trainable transceiver determines which cryptographic protocol or algorithm is used to generate and transmit the next code to which the receiver will respond. Typically the receiver of the remote control system also needs to be trained to recognize and accept the transmitter as a valid transmitter for the remote control system (e.g., the receiver may be trained to recognize a unique transmitter serial number associated with the transmitter as valid). In addition, the receiver and transmitter are typically synchronized to a counter that increments or changes in a predictable way with each button press. The training of the receiver of the remote control system is commonly referred to as the second part of the training process or receiver training. An example of a trainable transceiver configured to learn variable codes as well as methods for synchronizing rolling codes are described in U.S. Pat. No. 5,661,804, herein incorporated by reference.

SUMMARY

In accordance with one embodiment, a method for actuating a remote device having a receiver using an RF transmitter in a vehicle to transmit variable code signals, the RF transmitter including a memory having variable code characteristics associated with a plurality of different remote devices includes initiating an operating sequence to actuate the remote device, generating a plurality of RF carrier signals, each RF carrier signal including variable code characteristics associated with a different remote device from the plurality of different remote devices, and transmitting the plurality of RF carrier signals to the receiver of the remote device in order to remotely actuate the remote device.

In accordance with another embodiment, a method for training a trainable RF transmitter in a vehicle to transmit variable code signals used to actuate a remote device having a receiver, the trainable transmitter having a memory including stored variable code characteristics for a plurality of different remote devices, includes initiating a training sequence, generating at least one RF carrier signal having variable code characteristics associated with one remote device from the plurality of different remote devices, transmitting the at least one RF carrier signal to the receiver of the remote device, repeating the generating and transmitting steps for the variable code characteristics of each remote device in the plurality of different remote devices until feedback is received from a user that the remote device is activated, and upon receiving an indication that the remote device is activated, storing an identifier of the variable code characteristics that activated the remote device.

In accordance with yet another embodiment, a method for training a trainable RF transmitter in a vehicle to transmit variable code signals used to actuate remote devices, the trainable transmitter including a memory having stored variable code characteristics for a plurality of different remote devices, includes receiving inputs from a user, identifying a remote device to be actuated from the plurality of different remote devices based on the received inputs, and associating the identified remote device with a user input device of the trainable transmitter for subsequent transmission of a variable code signal having variable code characteristics of the identified remote device to actuate the identified remote device.

In accordance with another embodiment, a method for training a trainable RF transmitter in a vehicle to transmit variable code signals used to actuate remote devices, the trainable transmitter including a memory having stored variable code characteristics for a plurality of different remote devices includes receiving inputs from a user, identifying a remote device to be actuated from the plurality of different remote devices based on the received inputs, generating an RF carrier signal having variable code characteristics of the identified remote device, and transmitting the RF carrier signal to a receiver of the identified remote device to actuate the identified remote device.

In accordance with a further embodiment, a trainable transmitter in a vehicle for transmitting variable code signals used to actuate remote devices includes a memory having stored variable code characteristics for a plurality of different remote devices, a user input device configured to receive inputs from a user, a control circuit coupled to the user input device and the memory and configured to receive the inputs from the user input device, to identify a remote device from the plurality of different remote devices based on the received inputs and to associate the identified remote device with the user input device for subsequent transmission of a variable code signal having variable code characteristics of the identified remote device, and a transmitter circuit coupled to the control circuit and configured to transmit the variable code signal to actuate the identified remote device.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be more readily understood by reference to the following description taken with the accompanying drawings, in which:

FIG. 1 shows a vehicle including a trainable transceiver used to control a remote control system.

FIG. 2 shows a vehicle including a trainable transmitter in accordance with an embodiment.

FIG. 3 is a schematic block diagram of a trainable transmitter in accordance with an embodiment.

FIG. 4 illustrates a method for using a transmitter to remotely actuate a device in accordance with an embodiment.

FIGS. 5A and 5B illustrate interleaving of messages in accordance with an embodiment.

FIG. 6 illustrates a method for training a trainable transmitter in accordance with an embodiment.

FIG. 7 illustrates a method for training a trainable transmitter in accordance with an alternative embodiment.

FIGS. 8 a and 8 b illustrates methods for training a trainable transceiver in accordance with an alternative embodiments.

DETAILED DESCRIPTION

FIG. 2 shows a vehicle 20 including a trainable transmitter in accordance with an embodiment. Vehicle 20 is an automobile, although it should be understood that the trainable transmitter of the present invention may be embodied in other vehicles (e.g., a truck, sport utility vehicle (SUV), mini-van, or other vehicle) or other systems. The system as illustrated in FIG. 2 also includes a remote control system 24 such as a garage door opener, home security system, home lighting system, gate opener, etc. Remote control system 24 is responsive to a variable code (or rolling code) RF control signal. Accordingly, a cryptographic algorithm or protocol is used to generate a new control code for each transmission of the control signal. The trainable transmitter 35 (shown in FIG. 3) is mounted within the vehicle 20 inside, for example, a rearview mirror 26 or other suitable location such as an overhead console, a visor, etc. Alternatively, one or more elements of trainable transmitter may be mounted to other vehicle interior elements, such as an instrument panel or visor. Trainable transmitter 35 (shown in FIG. 3) also includes a programmable control circuit coupled to a transmitter circuit. The transmitter circuit and programmable control circuit are configured to identify, retrieve and/or store the carrier frequency and the cryptographic or rolling code algorithm or protocol for the variable control code used to control the remote control system 24. The transmitter selectively generates coded RF energy in accordance with the cryptographic protocol and transmits the coded RF energy as indicated by arrow B to the remote control system 24. Remote control system 24 includes a receiver 37 (shown in FIG. 3) to receive the transmitted RF energy. The programmable control circuit also controls the transmitter circuit 30 (shown in FIG. 3) to generate a carrier signal and modulate a binary code onto the carrier signal to generate the control signal for the remote control system 24. The operation of the trainable transmitter and the programmable control circuit are described in further detail below.

FIG. 3 is a schematic block diagram of a trainable transmitter in accordance with an embodiment. Trainable transmitter 35 shown in FIG. 3 includes a transmitter circuit 30, that is coupled to an antenna 38 and a control circuit 32. Advantageously, trainable transmitter 35 does not require a receiver to be trained to operate a remote control system 33. Accordingly, an original transmitter of the remote control system is also not required to train transmitter 35. A power supply 36 is conventionally coupled to the various components for supplying their necessary operating power in a conventional manner. A user interface 34 is used to receive input from a user regarding a particular remote system to be controlled. Transmitter 35 may be used to control a plurality of systems and devices. For example, user interface 34 may include an operator input device such as a series of push button switches which may each be associated with a separate remote control system, such as different garage doors, electronically operated access gates, house lighting controls or other remote control systems, each of which may have its own unique operating RF frequency, modulation scheme and/or cryptographic algorithm or protocol for a control code. Thus, each switch may correspond to a different radio frequency channel for transmitter circuit 30. Alternatively, the series of push button switches may each be associated with a different type of remote control system such as garage door opener, gate controller, house lighting control, each of which may have an associated set of manufacturers, makes, models, etc. Each manufacturer and/or specific make or model of system may have a unique operating frequency or frequencies, encryption data, cryptographic algorithm or protocol, etc. In another embodiment, user interface 34 may also include a display (or be coupled to a vehicle mounted electronic display) with a menu identifying, for example, particular remote control systems or types of remote control systems.

Trainable transmitter 35 includes a control circuit 32 configured to control the various portions of transmitter 35, to store data in a memory 31, to operate preprogrammed functionality, etc. Control circuit 32 may include various types of control circuitry, digital and/or analog, and may include a microprocessor, microcontroller, application-specific integrated circuit (ASIC), or other circuitry configured to perform various input/output, control, analysis, and other functions as described herein. Control circuit 32 is coupled to user interface 34 which may include an operator input device which includes one or more push button switches, but may alternatively include other user input devices, such as switches, knobs, dials, etc., or even a voice-actuated input control circuit configured to receive voice signals from a vehicle occupant and to provide such signals to control circuit 32 for control of transmitter 35.

Transmitter 35 is used to control remote control system 33 that uses a rolling control code. Once transmitter circuit 30 and control circuit 32 are trained to the carrier frequency and cryptographic algorithm associated with the remote control system 33 (e.g., a garage door opener), transmitter circuit 30 may then be used to transmit an RF signal B that has the characteristics necessary to activate remote control system 33 to a receiver 37 located at the remote control system 33.

Control circuit 32 includes data input terminals for receiving signals from the user interface 34 indicating, for example, that a training mode should be initiated, that an operating mode should be initiated, or for receiving information regarding the remote control system 33, etc. The training mode or operating mode may be initiated by, for example, actuating a push button, by a message on a vehicle bus (if the transceiver is mounted in a vehicle), a combination of key presses, selecting a menu item on a display, etc. The training and operating processes are is discussed in further detail below with respect to FIGS. 4-8. Control circuit 32 also includes a memory 31 that includes stored variable code characteristics for a plurality of remote control system manufacturers and particular makes or models of remote control systems for each manufacturer. The variable code characteristics may include, for example, possible carrier frequencies, modulation schemes, encryption data, cryptographic algorithms or protocols etc. for each system manufacturer and/or for specific makes or models of a system. Preferably, each system for a particular manufacturer has an entry in memory 31. In one embodiment, an index number may be provided for each system that identifies the system and the location of its entry in memory 31. Memory 31 may be a volatile or non-volatile memory, and may include read only memory (ROM), random access memory (RAM), flash memory, or other memory types.

Control circuit 32 is also coupled to transmitter circuit 30. Transmitter circuit 30 is configured to communicate with receiver 37 of the remote control system and may be used to transmit signals via antenna 38. In an alternative embodiment, trainable transmitter 35 may include a plurality of transmitter circuits 30 and/or antennas 38 in order to transmit multiple signals at multiple frequencies. Once transmitter 35 has been trained, receiver 37 of the remote control system 33 is synchronized with transmitter circuit 30 regarding the variable control code (and its associated serial number) generated using the cryptographic algorithm that was either received last or that is expected to be transmitted next. The receiver is also trained to recognize and accept transmitter 35 as a valid transmitter and synchronize a rolling code counter(s).

FIG. 4 illustrates a method for using a transmitter to remotely actuate a device in accordance with an embodiment. At block 402, an operating mode is initiated to transmit rolling code signals for a particular device type. For example, if the remote control system to be controlled is a garage door opener, the user may initiate the transmission of rolling codes associated with various garage door opener manufacturers and systems as stored in the memory 31 of the control circuit 32. Alternatively, the operating mode maybe configured to transmit rolling code signals for all known rolling code protocols for all known systems stored in memory 31. The rolling code transmission process may be initiated by, for example, actuating a push button, by a message on a vehicle bus (if the transceiver is mounted in a vehicle), a combination of key presses, selecting a menu item on a display, etc. At block 404, a plurality of RF carrier signals are generated by the control circuit 32. Each RF signal has the variable code characteristics (e.g., control code according to a cryptographic algorithm, carrier frequency, etc.) for a different one of the systems stored in the memory of the control circuit including the particular device to be actuated. At block 406, the plurality of RF signals are transmitted to the receiver of the remote control system. In one embodiment, the plurality of RF signals are transmitted sequentially. The transmitter 35 (shone in FIG. 3) will cycle through each known rolling code protocol (e.g., for a particular type of remote control system or for all known systems) stored in memory at each activation. If the remote control system corresponds to one of the system for which characteristics are stored in the transmitter, the remote control system should be actuated by the transmission of signals for all possible systems stored in the memory of the transmitter. Accordingly, the particular remote control system and its associated variable code characteristics do not need to be identified by the transmitter. At each activation of the rolling code transmission process, control circuit 32 (shown in FIG. 3) will increment each rolling code value unique to rolling code protocol. As mentioned, the receiver of the remote control system should be trained to accept the transmitter as a valid transmitter.

In another embodiment, an RF signal for each system stored in memory may be transmitted simultaneously. In this embodiment, a separate transmitter circuit 30 (shown in FIG. 3) may be required to transmit each RF signal. Accordingly, as mentioned above, transmitter 35 (shown in FIG. 3) may include a plurality of transmitter circuits 30. In another alternative embodiment, the data packets of the plurality of signals are transmitted simultaneously using a single transmitter circuit 30. Referring to FIG. 5A, each transmission of a message 502 by transmitter circuit 30 includes a packet of data 504 followed by idle time. For example, a typical transmission packet 504 may be 20 to 30 ms in duration, followed by approximately 75 ms of idle time. Each packet 504 contains a plurality of bits. By switching between frequencies and/or data packet transmissions, multiple message, for example four messages, can be interleaved while appearing continuous to the remote control system receiver and the user. The actual number of messages that may be interleaved may vary based on the contents of the transmission. As shown in FIG. 5B, multiple messages (506-512) can be sent on different frequencies. A first data string (or message) 506 is sent on a first frequency, a second data string 508 is sent on a second frequency, a third data string 510 is sent on a third frequency and a fourth data string 512 is sent on a fourth frequency. Each data string corresponds to a unique system. Each frequency may be the same or different, depending on the system to which it corresponds. The number of messages (or data packets) that may be sent in this manner, however, may be limited by the duration and format of a transmission by the transmitter.

At each activation, the transmitter cycles through the various rolling code protocols in memory and generates an interleaved message(s). Depending on the number of rolling code protocols or systems stored in memory, more than one interleaved message may be required (i.e., each message will represent a subset of the protocols/systems in memory). As mentioned above, if the remote control system corresponds to one of the systems for which characteristics are stored in the transmitter, the remote control system should be actuated by the transmission of signals for all possible systems (e.g., simultaneously). Accordingly, the remote control system and its associated variable code characteristics (e.g., rolling code protocol) do not need to be identified by the transmitter. Each time the rolling code transmission process is initiated, the rolling code value unique to each system is incremented. As mentioned above, the receiver 37 (see FIG. 3) of the remote control system should be trained to accept the transmitter as a valid transmitter.

FIG. 6 illustrates a method for training a trainable transmitter in accordance with one embodiment. At block 602, a rolling code training mode is initiated to identify the remote control system and the correct frequency and variable control code for the remote control system. The training mode may be initiated by, for example, actuating a push button, by a message on a vehicle bus (if the transceiver is mounted in a vehicle), a combination of key presses, selecting a menu item on a display, etc. At block 604, an index counter is set to one. As discussed previously, each system in memory may be identified by, for example, an index number. Accordingly, the training process begins with the system and its associated characteristics identified by an index number of one. As the process proceeds, each of the stored systems will be tried based on the sequential order of the corresponding index numbers in memory. At block 606, an RF control signal is generated using the stored characteristics, e.g., rolling code and frequency, for the first system in memory and transmitted to the remote control system. The transmitter waits for user feedback regarding whether the remote system was activated by the transmission at block 608. A user may provide feedback by, for example, actuating a push button, releasing a push button, a combination of button presses, a menu selection, a time period between button presses, etc. If the remote control system is activated (block 608), the rolling code characteristics used are stored at block 610 and may be associated with a switch or other operator input device of the transmitter. The switch is also associated with the remote control system and may be used to initiate subsequent transmissions to the remote control system. As mentioned above, the receiver 37 (see FIG. 3) of the remote control system should be trained to accept the transmitter as a valid transmitter.

If the remote control system is not activated (block 608), it is determined whether the last stored system in memory has been reached at block 614. If the last stored system has not been reached, the index counter is incremented at block 612. The system and characteristics identified by the incremented index number in memory are used to generate an RF control signal transmitted to the remote control system (block 606). The process is repeated for each system stored in memory until either the remote system is activated or all possible systems have been tried. If, at block 614, the last stored system has been reached and the remote system has not been activated, the process may start over at block 604.

FIG. 7 illustrates a method for training a trainable transmitter in accordance with an alternative embodiment. At block 702, a rolling code training mode is initiated. The training mode may be initiated by, for example, actuating a push button, by a message on a vehicle bus (if the transceiver is mounted in a vehicle), a combination of key presses, selecting a menu item on a display, etc. At block 704, a plurality of RF signals corresponding to a subset of the systems or devices included in the memory is generated by the control circuit. The subset of signals maybe transmitted, for example, sequentially or simultaneously (e.g., via multiple transmitter circuits or an interleaved message). The transmitter may then send a transmission with a set of packets representing the subset of all possible systems at block 706. At block 708, the transmitter waits for user feedback regarding whether the remote system was activated by the transmission at block 706. A user may provide feedback by, for example, actuating or releasing a push button, a combination of key presses, a menu selection, a time period between button presses, etc. If the remote control system is activated, the subset of systems used may be stored and associated with a switch or button for subsequent transmission to the remote control system at block 712. As mentioned above, the receiver 37 (see FIG. 3) of the remote control system should be trained to accept the transmitter as a valid transmitter. If the transmission does not activate the remote control system or device, it is determined whether the last subset of systems in memory has been reached at block 714. If the last subset of systems has not been reached, another subset of possible systems from the memory are used to generate a plurality of RF signals at block 710. Each time the rolling code transmission process is initiated, the rolling code value unique to each system in the identified subset of systems is incremented. This process continues until the system is activated or all possible systems have been tried. If, at block 714, the last subset of systems has been reached and the remote system has not been activated, the process may start over at block 704.

FIG. 8 a illustrates a method for training a trainable transmitter in accordance with an alternative embodiment of the invention. At block 802, a rolling code training mode is initiated to identify the remote control system and the correct frequency and variable control code for the remote control system. The training mode may be initiated by, for example, actuating a push button, by a message on a vehicle bus (if the transceiver is mounted in a vehicle), a combination of key presses, selecting a menu item on a display, etc. At block 804, a user provides input to the transmitter and control circuit that identifies the remote control system (e.g., manufacturer, make/model, etc.) to be controlled. For example, the transmitter user interface may include a display or be coupled to a display in the vehicle that can be used to show a menu of possible remote control systems (i.e., systems that have characteristics stored in the memory of the transmitter). The user may select from the menu the appropriate system that corresponds to the remote control system to be controlled by the transmitter. Alternatively, a menu of the possible systems that have characteristics stored in the memory of the transmitter may be provided in a written document, such as an owner's manual, and the user can select a system by a combination of key or button presses. Once the control circuit of the transmitter receives the system identification, the system and/or variable code characteristics for the identified system may be associated with a switch or button at block 806 for subsequent transmission to the remote control system. As mentioned above, the receiver 37 (see FIG. 3) of the remote control system should be trained to accept the transmitter as a valid transmitter.

FIG. 8 b illustrates a method for training a trainable transmitter in accordance with an alternative embodiment of the invention. At blocks 808 and 810, a rolling code training mode is initiated and a user provides an input to the transmitter and control circuit to identify the remote control system to be controlled in a manner similar to that described above with respect of FIG. 8 a. In the embodiment of FIG. 8 b, once the control circuit of the transmitter receives the system identification, the variable code characteristics for the system are retrieved and the rolling code and frequency are used to create a RF control signal that is transmitted to the remote control system at block 812. The transmitter waits for user feedback regarding whether the remote system was activated by the transmission at block 814. A user may provide feedback by, for example, actuating a push button, a combination of button presses, a menu selection, a time period between button presses, etc. If the remote control system is activated (block 814), the rolling code characteristics used are stored at block 818 and associated with a switch or other input device of the transmitter. The switch or other input device is also associated with the remote control system and may be used to initiate subsequent transmissions to the remote control system. If the remote control system is not activated (block 814), the transmitter may prompt the user to reenter or reselect the system or to provide additional input regarding the remote control system at block 816. The transmitter may then re-transmit an RF control signal (block 8812) to the remote control system. As mentioned above, the receiver 37 (see FIG. 3) of the remote control system should be trained to accept the transmitter as a valid transmitter.

It is also important to note that the construction and arrangement of the elements of the trainable transmitter as shown in the preferred and other exemplary embodiments are illustrative only. Although only a few embodiments of the present invention have been described in detail in this disclosure, those skilled in the art who review this disclosure will readily appreciate that many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, circuit elements, etc.) without materially departing from the novel teachings and advantages of the subject matter recited herein. Accordingly, all such modifications are intended to be included within the scope of the present invention as described herein. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes and/or omissions may be made in the design, operating conditions and arrangement of the preferred and other exemplary embodiments without departing from the exemplary embodiments of the present invention as expressed herein. 

1. A method for training a trainable RF transmitter in a vehicle to transmit variable code signals used to actuate a remote device having a receiver, the trainable transmitter having a memory including stored variable code characteristics for a plurality of different remote devices, the method comprising: initiating a training sequence; generating at least one RF carrier signal having variable code characteristics associated with one remote device from the plurality of different remote devices; transmitting the at least one RF carrier signal to the receiver of the remote device; repeating the generating and transmitting steps for the variable code characteristics of each remote device in the plurality of different remote devices until feedback is received at a user input device, the feedback representing that the remote device was activated; and in response to the feedback, storing an identifier associated with the variable code characteristics that activated the remote device.
 2. A method according to claim 1, further comprising: associating the identifier with a user input device of the trainable RF transmitter; in response to input from the user input device, using the association to generate and transmit an RF carrier signal having the variable code characteristics that activated the remote device in response to input of the user input device.
 3. A method according to claim 1, wherein the variable code characteristics comprise a carrier frequency and data.
 4. A method according to claim 1, wherein the step of generating at least one RF carrier signal includes generating a plurality of RF carrier signals that correspond to a subset of the plurality of different remote devices, wherein each RF carrier signal has the variable code characteristics of one of the remote devices in the subset of the plurality of different remote devices; and wherein the step of transmitting comprises transmitting the plurality of RF carrier signals that correspond to a subset of the plurality of different remote devices.
 5. A method according to claim 4, wherein the generating and transmitting steps are repeated for a different subset of the plurality of different remote devices until feedback is received from the user indicating that the remote device was activated by the plurality of RF carrier signals.
 6. A method according to claim 5, further comprising: in response to receiving feedback that the remote device was activated by variable code characteristics associated with a subset of different remote devices, storing an identifier associated with the subset of different remote devices in memory of the trainable RF transmitter.
 7. A method according to claim 6, further comprising associating the stored identifier with a user input device of the trainable RF transmitter for subsequent transmission of RF carrier signals to activate the remote device.
 8. The method of claim 1, further comprising: waiting for feedback to be received at the user input device between transmitting variable code characteristics of each remote device in the plurality of different remote devices.
 9. A method for training a trainable RF transmitter in a vehicle to transmit variable code signals used to actuate remote devices, the trainable transmitter including a memory having stored variable code characteristics for a plurality of different remote devices, the method comprising: receiving inputs from a user input device; identifying a remote device to be actuated from the plurality of different remote devices based on the received inputs; and associating the identified remote device with a user input device of the trainable transmitter for subsequent transmission of a variable code signal having variable code characteristics of the identified remote device to actuate the identified remote device.
 10. A method according to claim 9, wherein the trainable RF transmitter is at least partially embedded in a mirror for the vehicle.
 11. A method according to claim 9, wherein the user input device includes at least one pushbutton.
 12. A method according to claim 9, wherein the inputs identify characteristics of the remote device.
 13. A method according to claim 9, wherein the trainable transmitter is coupled to a display and the display presents a menu of data related to the plurality of different remote devices.
 14. A method according to claim 9, wherein the variable code characteristics comprise at least one of: manufacturer, make, model, carrier frequency, cryptographic algorithm and encryption data.
 15. A method for training a trainable RF transmitter in a vehicle to transmit variable code signals used to actuate remote devices, the trainable transmitter including a memory having stored variable code characteristics for a plurality of different remote devices, the method comprising: receiving inputs from a user input device; identifying a remote device to be actuated from the plurality of different remote devices based on the received inputs; generating an RF carrier signal having variable code characteristics of the identified remote device; and transmitting the RF carrier signal to a receiver of the identified remote device to actuate the identified remote device.
 16. A method according to claim 15, further comprising: receiving feedback at the user input device, the feedback indicating that the identified remote device has been actuated; and associating the identified remote device with a user input device of the trainable RF transmitter for subsequent transmission of a variable code signal having variable code characteristics of the identified remote device to actuate the identified remote device.
 17. A trainable transmitter in a vehicle for transmitting variable code signals used to actuate remote devices, the trainable transmitter comprising: a memory having stored variable code characteristics for a plurality of different remote devices; a user input device; a control circuit coupled to the user input device and the memory and configured to receive the inputs from the user input device, to identify a remote device from the plurality of different remote devices based on the received inputs and to associate the identified remote device with the user input device for subsequent transmission of a variable code signal having variable code characteristics of the identified remote device; and a transmitter circuit coupled to the control circuit and configured to transmit the variable code signal to actuate the identified remote device.
 18. A trainable transmitter according to claim 17, wherein the trainable transmitter is mounted in a mirror of the vehicle.
 19. A trainable transmitter according to claim 17, wherein the trainable transmitter is mounted in a visor of the vehicle.
 20. A trainable transmitter according to claim 17, wherein the trainable transmitter is mounted in an overhead console. 